A modeling language is an artificial language used to express information, knowledge, or systems in a structure that is defined by a consistent set of rules. The rules may be used to interpret the meaning of components in the structure. A modeling language can be graphical or textual. A graphical modeling language typically uses diagrams with named symbols that represent concepts, lines that connect the symbols and represent relationships, and other graphical annotations to represent constraints. A textual modeling language, on the other hand, typically uses standardized keywords accompanied by parameters to make computer-interpretable expressions.
One example of a graphical modeling language is Business Process Modeling Notation (BPMN). BPMN is a standard for modeling business processes and provides a graphical notation for specifying the business processes. Other examples of modeling languages include the Unified Modeling Language (UML) and the Web Ontology Language (OWL). UML is a standardized general-purpose modeling language in the field of software engineering that includes a set of graphical notation techniques to create abstract models of specific systems. OWL is a family of knowledge representation languages for authoring ontologies.
Currently, various graphical modeling tools (such as the Eclipse Graphical Modeling Framework (GMF)) provide functionality to perform graphical modeling based on various domain models, such as the domain models listed above (i.e., BPMN, UML, OWL, etc). Although graphical modeling tools such as GMF are open and extensible, such tools are generally only operable in desktop environments. Consequently, the graphical modeling tool instance resides in the user's computer and is only operable by the user, significantly limiting its flexibility. Furthermore, extending and customizing a tool like GMF to support changed or new models generally requires imperative programming, making such tools difficult to use. This makes tools such as GMF particularly unsuitable for non-technical users.
In view of the foregoing, what is needed is a web-based graphical modeling tool that is open and extensible in supporting new or changed domain models. Further needed is a web-based graphical modeling tool that can support new or changed domain models without the need for imperative programming. Yet further needed is a web-based graphical modeling tool which provides functionality for both diagramming and validating instances of domain models.